1. Field of Invention
The present invention relates to an interpolation filter. More particularly, the present invention relates to an interpolation filter that utilizes a microprocessor to generate interpolation signals.
2. Description of Related Art
Multi-rate filters are widely adopted inside digital audio systems such as compact disks and digital audio tape players. These filters convert a set of input samples into another set of data, which represents the sampling of identical analogue signals at different rates. The two principal implementations of a multi-rate filter are decimation and interpolation. In the interpolation, existing data are computed to increase sampling rate and fill in the missing data between signal samples.
The process of converting from a discrete-time signal to a continuous-time signal is called a reconstruction. The interpolation method can be regarded as a reconstruction from another discrete-time signal to a continuous-time signal. The reconstruction of continuous-time (analogue) signal and the reconstruction of the discrete-time (digital) signal are both processes of turning the same into analogue signal. FIG. 1 is a diagram showing a conventional method of reconstructing a continuous-time signal. As shown in FIG. 1, the continuous discrete-time signal x(n) consists of an impulse train. The amplitude of this impulse train corresponds to the sample x(n) at time nT. In practice, this type of conversion is actually implemented by a digital/analogue converter and the results of the conversion are a continuous signal y(t). To smooth out the continuous signal y(t) and produce a reconstructed analogue signal xc(t), a low-pass reconstruction filter is often used.
FIG. 2 is a diagram showing the discrete-time signal obtained by a conventional interpolation method. As shown in FIG. 2, the discrete-time signal x(n) is a multiple of L=4. Within the discrete-time signal x(n) are L-1 zero value sampling points. A signal w(m) is obtained by inserting these zero value points. A smooth signal y(m) is derived after passing the signal w(m) through a low-pass filter. Since one x(n) sample corresponds to L y(m) samples, the sampling rate increases L times.
The interpolation low-pass filter has a finite impulse response (FIR) structure (alternatively, an infinite impulse response (IIR) structure). The signal y(m) computed by the convolution equation of a filter is as follows:             y      ⁡              (        m        )              =                  ∑                  k          =          0                          N          -          1                    ⁢                          ⁢                        h          ⁡                      (            k            )                          ⁢                  w          ⁡                      (                          m              -              k                        )                                ;
where h(k) an impulse function, N-1 is the number of filter coefficient in the impulse function h(k), w(m−k) is an expansion formula according to an input signal x(n) ratio, and the relationship between the signal w(m−k) and the signal x(n) is given by:w(m−k)=x(m−k)/L when m=k=0, ±L, ±2L, . . . ; and w(m−k)=0, for others.
FIG. 3 is a block diagram showing the internal architecture of a conventional interpolation filter. As shown in FIG. 3, the function of an FIR filter (or an IIR filter) is implemented using a microprocessor 302 (in FIG. 3, the microprocessor is labeled ADSP-2100) and its associated assembly language. When the IRQ terminal of the microprocessor 302 receives a signal from a timer 304, the microprocessor 302 executes to filter an input discrete-time signal submitted from an analogue/digital converter 306. Furthermore, the microprocessor 302 uses a software program (for example, such as the one shown in FIG. 4) to produce the interpolation signal having the desired sampling rate. Finally, the interpolation signal is transmitted to a latching circuit 308.
The microprocessor must hold the filter coefficient and the input signal in order to carry out any interpolation filter function. Moreover, the microprocessor must compute the interpolation signal according to the sampling rate. If the sampling rate is high, time required for calculating the interpolation signal is longer. Because both data transfer and signal computation use up some microprocessor's processing time (in other words, instruction cycles), other tasks are forced to slow down.